package jdbc;

//jdbc
//java database connectivity  java数据库连接
//java中规范应用程序访问数据库的api,为多种关系数据库提供统一访问方式
//jdbc统一了数据库的访问方式，但是直接在java程序中实用jdbc还是非常复杂和繁琐
//所以spring对jdbc进行了更深层次的封装，也就是jdbc template。
//jdbcTemplate spring提供的操作数据库的便捷工具
//

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/*
* Connection 表示和数据库的连接。要执行任何数据库操作，首先需要建立与数据库的连接，
* 通过DriverManager.getConnection方法获得Connection对象。一旦建立了连接，可以使用该连接创建Statement对象
* Statement  用于执行静态的SQL语句，并返回它所生成的结果。通过Connection的createStatement方法创建Statement对象
*   executeQuery 查询 返回ResultSet
*   executeUpdate 插入 更新 删除 并返回受影响的行数
*
* ResultSet 表示SQL查询的结果，包含Statement执行查询后返回的数据，提供一种遍历的方式来遍历查询结果集中的数据行，并能访问每行的数据
*
*
*
* */

public class JdbcTest {

    private static String mysqlUrl="jdbc:mysql://localhost:3306/lesson1";
    private static String name="root";
    private static String password="12345678";
    private static Connection connection;
    private static Statement stmt;

    public static void main(String[] args) {
        try{

            connection= DriverManager.getConnection(mysqlUrl,name,password);
            stmt=connection.createStatement();

            printDataBase();

            String insertSql="insert into users(name,email) values('小刘','906922090@qq.com')";
            int insertResult=stmt.executeUpdate(insertSql);
            if(insertResult>0){
                System.out.println("插入成功");
            }else{
                System.out.println("插入失败");
            }

            printDataBase();

            String sqlUpdate="Update users set name='lr' where id=3";
            int updateResult=stmt.executeUpdate(sqlUpdate);
            System.out.println(updateResult);
            printDataBase();

        }catch (Exception e){
            e.printStackTrace();
        }


    }

    private static void printDataBase(){
       try{
           String selectAllSql="select * from users";
           ResultSet resultSet=stmt.executeQuery(selectAllSql);
           System.out.println("**************");
           while (resultSet.next()){
               System.out.print(resultSet.getInt("id")+"   ");
               System.out.print(resultSet.getString("name")+"   ");
               System.out.println(resultSet.getString("email"));
           }
           System.out.println("===============");
       }catch (Exception e){
           e.printStackTrace();
       }
    }
}
